/**
 * 去除两边空格的中间件
 */

const { isEmptyObject } = require('../utils/common');

/**
 * 去除传递过来的数据的两边空格
 * @param {*} ctx 上下文
 * @param {*} next 下一个要执行的函数
 */
const trim = async (ctx, next) => {
    const { body: _body, params, query } = ctx.request;
    const body = !isEmptyObject(_body) ? _body : !isEmptyObject(params) ? params : query;
    if (body) {
        for (const key in body) {
            if (Object.hasOwnProperty.call(body, key)) {
                const item = body[key];
                if (typeof item === 'string' && item) {
                    body[key] = item.trim();
                }
            }
        }
    }
    await next();
}

module.exports = trim;